home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 6 / FM Towns Free Software Collection 6.iso / ms_dos / switch / src / switch.asm < prev   
Encoding:
Assembly Source File  |  1993-07-08  |  1.5 KB  |  81 lines

  1.     .8086
  2.  
  3.     ASSUME    CS:CODE,DS:CODE
  4. CODE    SEGMENT
  5.  
  6.     ORG    0100H
  7.  
  8. START:    CALL    ZPR
  9.     DB    'Switch.com  第1.10版   by  しんき',0DH,0AH
  10.     DB    '  機能:押下ボタンに応じたエラーレベルを戻す',0DH,0AH,0AH
  11.     DB    '  errorlevel==0   →   何も押されていない',0DH,0AH
  12.     DB    '              1   →   トリガA',0DH,0AH
  13.     DB    '              2   →   トリガB',0DH,0AH
  14.     DB    '              3   →   RUN',0DH,0AH
  15.     DB    '              4   →   SELECT',0DH,0AH,0AH
  16.     DB    '   戻り値 = ',00
  17.  
  18.     MOV    CL,4        ;  戻り値 ( ボタンはエラーレベルが高い方優先 )
  19.  
  20.     MOV    DX,04D0H    ;          PAD1 入力レジスタ
  21.     IN    AL,DX
  22.     MOV    AH,AL        ;  AH....PAD1
  23.     MOV    DX,04D2H    ;          PAD2 入力レジスタ
  24.     IN    AL,DX        ;  AL....PAD2
  25.     XOR    AX,0FFFFH    ;        ( 入力ビットが 1 になるよう )
  26.  
  27.     MOV    BX,00300H    ;  SELECT
  28.     AND    BX,AX
  29.     CMP    BX,00300H
  30.     JZ    QUIT
  31.     DEC    CL
  32.  
  33.     MOV    BX,00C00H    ;  RUN
  34.     AND    BX,AX
  35.     CMP    BX,00C00H
  36.     JZ    QUIT
  37.     DEC    CL
  38.  
  39.     MOV    BX,02020H    ;  TRIG-B
  40.     AND    BX,AX
  41.     JNZ    QUIT
  42.     DEC    CL
  43.  
  44.     MOV    BX,01010H    ;  TRIG-A
  45.     AND    BX,AX
  46.     JNZ    QUIT
  47.     DEC    CL
  48.  
  49. QUIT:    MOV    AH,02H        ; PUTCHAR
  50.     MOV    DL,030H
  51.     ADD    DL,CL
  52.     INT    21H
  53.     CALL    ZPR
  54.     DB    0DH,0AH,0
  55.     MOV    AH,4CH
  56.     MOV    AL,CL
  57.     INT    21H
  58.  
  59.  
  60. ;    ASCII-Zero 文字列表示  (呼出し直後のメッセージを表示)  : AXを破壊
  61. ZPR:    POP    AX        ; 
  62.     PUSH    BX
  63.     PUSH    DX
  64.     MOV    BX,AX        ; BX= [文字列]
  65. ZPR_L1:    MOV    AH,2        ;Func-No. 2  「PUTCHAR」
  66.     MOV    DL,[BX]        ;1文字読み込み
  67.     INC    BX
  68.     AND    DL,DL
  69.     JZ    ZPR_L2        ; NULLだったら表示終了
  70.     INT    21H        ; 表示
  71.     JMP    ZPR_L1        ; まだまだループ
  72. ZPR_L2:    POP    DX
  73.     POP    AX
  74.     PUSH    BX
  75.     MOV    BX,AX
  76.     RET
  77.  
  78.  
  79. CODE    ENDS
  80.     END    START
  81.